Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 10 Einige wichtige .NET-Klassen
  gp 10.1 Die Klasse »Object«
    gp 10.1.1 Der Konstruktor
    gp 10.1.2 Die Methoden der Klasse »Object«
  gp 10.2 Die Klasse »String«
    gp 10.2.1 Das Erzeugen eines Strings
    gp 10.2.2 Unveränderliche »String«-Objekte
    gp 10.2.3 Die Eigenschaften von »String«
    gp 10.2.4 Die Methoden der Klasse »String«
    gp 10.2.5 Zusammenfassung der Klasse »String«
  gp 10.3 Die Klasse »StringBuilder«
    gp 10.3.1 Allgemeines
    gp 10.3.2 Die Kapazität eines »StringBuilder«-Objekts
    gp 10.3.3 Die Konstruktoren der Klasse »StringBuilder«
    gp 10.3.4 Die Eigenschaften der Klasse »StringBuilder«
    gp 10.3.5 Die Methoden der Klasse »StringBuilder«
    gp 10.3.6 Allgemeine Anmerkungen
  gp 10.4 Der Typ »DateTime«
    gp 10.4.1 Die Zeitspanne »Tick«
    gp 10.4.2 Die Konstruktoren von »DateTime«
    gp 10.4.3 Die Eigenschaften von »DateTime«
    gp 10.4.4 Die Methoden der Klasse »DateTime«
    gp 10.4.5 Die Klasse »TimeSpan«
  gp 10.5 Die Klasse »Array«
    gp 10.5.1 Das Erzeugen eines »Array«-Objekts
    gp 10.5.2 Die Eigenschaften eines »Array«-Objekts
    gp 10.5.3 Die Methoden der Klasse »Array«
    gp 10.5.4 Array-Elemente sortieren
  gp 10.6 Ausgabeformatierung
    gp 10.6.1 Formatierung mit der Methode »String.Format«
    gp 10.6.2 Formatierung mit der Methode »ToString«
    gp 10.6.3 Benutzerdefinierte Formatierung


Galileo Computing

10.4 Der Typ »DateTime«  downtop

Um ein Datum einschließlich einer Zeitangabe in einer Variablen zu speichern, deklarieren Sie die Variable vom Typ DateTime, beispielsweise:


Dim myDate As DateTime = New DateTime(2003, 12, 6)
Console.WriteLine(myDate)

Die Ausgabe wird lauten:


06.12.2003 00:00:00

Mit einer Variablen des Typs DateTime lässt sich ein Datum zwischen dem 1. Januar 01 und dem 31. Dezember 9999 behandeln – nach dem gregorianischen Kalender, um präzise zu sein.


Galileo Computing

10.4.1 Die Zeitspanne »Tick«  downtop


Die Zeitmessung erfolgt in Einheiten von 100 Nanosekunden, die als Tick bezeichnet werden.


Diese Aussage muss man sich auf der Zunge zergehen lassen: Die .NET-Zeitmessung beginnt am 1.1.0001 um 0:00 Uhr, und es können Intervalle von 0.0000001 Sekunden (in Worten: ein Zehnmillionstel) unterschieden werden. Die Anzahl der Ticks seit Beginn dieser Zeitrechnung können in einem Long gespeichert werden, der groß genug ist, um damit alle Intervalle bis zum Ende des Jahres 9999 abdecken zu können.

Wenn Sie das aktuelle Datum und die aktuelle Zeit ausgedrückt in Ticks interessiert, dann geben Sie den folgenden Code ein:


Console.WriteLine(DateTime.Now.Ticks)

Zuerst rufen Sie die statische Methode Now auf, die das aktuelle Systemdatum einschließlich der Zeit als DateTime zurückliefert. Darauf wird die Eigenschaft Ticks angewendet, die Ihnen eine kaum noch fehlerfrei abschreibbare Zahl liefert.

Umgekehrt können Sie natürlich auch aus einem Long, der als Tick interpretiert werden soll, Datum und die Zeit ermitteln. Dazu wird die Klasse DateTime instanziiert und dabei ein Konstruktor aufgerufen, der einen Long erwartet, der als die Anzahl der Ticks seit Beginn der .NET-Zeitrechnung interpretiert wird.


Dim actualDate As DateTime = New DateTime(631452984963219664)
Console.WriteLine(actualDate.ToString())

Die Ausgabe lautet:


30.12.2001 08:41:36

Sie haben jetzt einen ersten Eindruck in den Umgang mit Datum und Uhrzeit gewonnen. Wir wollen uns nun die Details der Klasse DateTime ansehen.


Galileo Computing

10.4.2 Die Konstruktoren von »DateTime«  downtop

Liegt Ihnen die Anzahl der Ticks vor, genügt der einparametrige Konstruktor, um ein Objekt zu erzeugen:


Public Sub New (ticks As Long)

Da in den meisten Fällen vermutlich kaum die Anzahl der Tick-Intervalle bekannt sein dürfte, kommt diesem Konstruktor geringe Bedeutung zu.

Wollen Sie mit einem bestimmten Datum operieren, bei dem die Uhrzeit keine Rolle spielt, bietet sich der folgende Konstruktor an:


Public Sub New (year As Integer, month As Integer, day As Integer)

Den Parametern wird das Jahr, der Monat und der Tag jeweils als Integer übergeben. Dabei ist die Jahresangabe auf die Zahlen zwischen einschließlich 1 und 9999 begrenzt, die Monatsangabe natürlich auf 1 bis 12 und die Anzahl der Tage abhängig vom Kalendermonat. Da bei diesem Konstruktor auf die Zeitangabe verzichtet wird, bezieht sich das Datum immer auf Mitternacht, also exakt 0:00 Uhr.

Im folgenden Beispiel setzen wir diesen Konstruktor ein, um das Datum 12. Mai 1965 abzubilden, und lassen uns an der Konsole die zu dieser Angabe entsprechenden Ticks ausgeben:


Dim myDate As DateTime = New DateTime(1965, 5, 12)
Console.WriteLine("Datum: {0}", myDate)
Console.WriteLine("Ticks: {0}", myDate.Ticks)

Für eine Präzisierung durch eine zusätzliche Zeitangabe stehen zwei Konstruktoren zur Verfügung. Während der erste zusätzlich zu der Angabe des Datums in drei weiteren Parametern Stunde, Minute und Sekunde entgegennimmt, kann dem anderen in einem siebten Parameter die Anzahl der Millisekunden übergeben werden:


Public Sub New (year As Integer, month As Integer, day As Integer, _
hour As Integer, minute As Integer, second As Integer)
Public Sub New (year As Integer, month As Integer, day As Integer, _
hour As Integer, minute As Integer, second As Integer, _
msecond As Integer)

Für jeden dieser Konstruktoren gibt es noch eine weitere Überladung, die um eine Referenz vom Typ System.Globalization.Calendar ergänzt ist. Damit kann man gegebenenfalls das Kalenderformat vom gregorianischen Kalender auf einen anderen umschalten.

Mit einer Neuerung wartet .NET 2.0 auf: Sie können nun auch festlegen, auf welcher Basis die Zeitangabe erfolgt. Dazu gibt es drei Möglichkeiten:

gp  Die Zeitangabe bezieht sich auf die lokale Systemzeit.
gp  Die Zeitangabe legt die koordinierte Weltzeit (UTC) zugrunde.
gp  Die Zeitangabe ist nicht genau spezifiziert.

Die Festlegung muss bereits bei der Instanziierung erfolgen. Dazu stehen einige Konstruktoren zur Verfügung, denen ein Argument vom Typ DateTimeKind übergeben wird. Bei DateTimeKind handelt es sich um eine Enumeration mit den Elementen Local, Unspecified und Utc. Der Standard ist Unspecified.


Public Sub New (ticks As Long, kind As DateTimeKind)

Liegt ein DateTime-Objekt vor, lässt sich die Zeitbasis nicht mehr verändern. Sie können die Einstellung jedoch mit der Eigenschaft Kind jederzeit auswerten.


Galileo Computing

10.4.3 Die Eigenschaften von »DateTime«  downtop

Liegt ein gültiges Datum vor, lassen sich daraus vom Jahr bis zu den Millisekunden sämtliche Informationen extrahieren. Die Namen der Eigenschaften sind sehr einprägsam: Year, Month, Day, Hour, Minute, Second und Millisecond.

Nehmen wir an, wir wollen das aktuelle Systemdatum, das wir mit der Eigenschaft Now ermitteln können, in seine Detailinformationen zerlegen, könnte das wie nachfolgend gezeigt erfolgen.


Dim newDate As New DateTime()
newDate = DateTime.Now
Console.WriteLine("Jahr = {0}", newDate.Year)
Console.WriteLine("Monat = {0}", newDate.Month)
Console.Write("Tag = {0}", newDate.Day)
Console.WriteLine(" ({0})", newDate.DayOfWeek.ToString)
Console.WriteLine("Stunde = {0}", newDate.Hour)
Console.WriteLine("Minute = {0}", newDate.Minute)
Console.WriteLine("Sekunde = {0}", newDate.Second)
Console.WriteLine("MilliSek. = {0}", newDate.Millisecond)

Weil die Ausgabe der Eigenschaft Day nur das aktuelle Tagesdatum liefert, ohne den Wochentag anzugeben, bietet sich eine weitere Eigenschaft von DateTime an, die aus einem gegebenen Datum sogar den Wochentag ermittelt: DayOfWeek. Der Rückgabewert ist vom Typ DayOfWeek, einer Enumeration des System-Namespace, die für den Sonntag 0 festlegt, für Montag 1 usw. Mit dem Aufruf von ToString auf DayOfWeek erhalten wir die der Konstanten entsprechende Zeichenfolge.

Bedauerlich ist, dass es keine gleichwertige Auflistung für die Monate gibt. Wenn Sie daher auch den Monatsnamen in der Ausgabe als Text und nicht nur als Zahl lesen wollen, müssen Sie die Zahlen 1 bis 12 selbst den Monatsnamen zuordnen, beispielsweise mittels eines Selecet-Case-Statements.

Now liefert die aktuelle Systemzeit und hängt damit unter Windows-Plattformen von der Einstellung in der Systemsteuerung ab. Eine sehr ähnliche Eigenschaft ist UtcNow, die aus den Einstellungen in der Systemsteuerung die Greenwich Mean Time (GMT) ermittelt.

Wenn auf die Zeitangabe, die uns Now liefert, verzichtet werden kann oder muss, können Sie auch auf die statische Eigenschaft Today zurückgreifen, die das Datum ohne Zeitangabe liefert. Diese wird auf 00:00:00 gesetzt.


Galileo Computing

10.4.4 Die Methoden der Klasse »DateTime«  downtop

Nahezu alle Methoden lassen sich in zwei operativen Gruppen zusammenfassen:

gp  Methoden, die der Ausgabeformatierung dienen
gp  die Gruppe der Add-Methoden, mit der zu einem gegebenen Datum eine Zeitspanne addiert oder subtrahiert werden kann.

Allgemeine Methoden

Mit insgesamt vier vordefinierten Methoden lässt sich die Textausgabe eines DateTime-Objekts verändern:

gp  ToLongDateString und ToShortDateString
gp  ToLongTimeString und ToShortTimeString

Wir können den Effekt dieser Methoden am besten anhand von Beispielen sehen. Dazu deklarieren wir eine Variable vom Typ DateTime und führen darauf alle vier Methoden aus:


Dim myDate As New DateTime(1999, 2, 3, 5, 25, 30)
'Datum = 3.Februar 1999 5:25:30
Console.WriteLine(myDate.ToLongDateString)
'Ausgabe: Mittwoch, 3. Februar 1999
Console.WriteLine(myDate.ToShortDateString)
'Ausgabe: 03.02.1999
Console.WriteLine(myDate.ToLongTimeString)
'Ausgabe: 05:25:30
Console.WriteLine(myDate.ToShortTimeString)
'Ausgabe: 05:25

Weitaus interessanter als diese Formatmethoden ist eine andere, die ihre Leistungsfähigkeit erst auf den zweiten Blick offenbart: ToFileTime.


Public Function ToFileTime() As Long

Der Rückgabewert vom Typ Long enthält die Anzahl der Ticks seit dem 1. Januar 1601, 12 Uhr. Welchen Hintergrund diese scheinbar zufällige Jahreszahl hat, verrät uns die Dokumentation nicht. Das soll uns aber auch nicht weiter interessieren, viel wichtiger ist die Tatsache, mit dieser Methode ein Mittel in den Händen zu halten, das uns ermöglicht, die Zeitspanne zwischen zwei Ereignissen zu messen – und dafür brauchen wir einen präzise definierten, gleichermaßen gültigen Ursprung, egal wie er definiert ist.

Im folgenden Beispiel steht die Methode ToFileTime im Mittelpunkt der Anwendung. Es ist ein kleines Spielchen, bei dem es darum geht, nach dem Starten der Anwendung ein bestimmtes Zeitintervall zu schätzen. Der Start des Spiels wird an der Konsole angezeigt. Wenn der Anwender meint, das von ihm vorher bekannt gegebene Zeitintervall sei abgelaufen, drückt er die (Enter)-Taste.

Weicht die Schätzung weniger als 10  % vom erforderlichen Intervall ab, gilt die Runde als gewonnen, ansonsten muss sich der als Verlierer erkannte Anwender vom Programm verhöhnen lassen.


' ----------------------------------------------------------
' Beispiel: ...\Kapitel10\Zeitschätzung
'-----------------------------------------------------------
Imports Microsoft.VisualBasic.ControlChars
Module Module1
Sub Main()
Dim str As String = "Hier können Sie Ihr Vermögen testen,"
str &= " eine Zeit zu schätzen." & CrLf
str &= "Wie viele Sekunden wollen Sie schätzen?"
Console.WriteLine(str)
Console.Write("Zahl = ")
'Eingabe der zu schätzenden Sekundenanzahl
Dim numberOfSeconds As Int32 = NumberTip.GetNumberInput()
'Start des Anwenders
Dim startTime As New DateTime()
startTime = NumberTip.StartGame
'Beenden des Anwenders
Dim endTime As New DateTime()
endTime = NumberTip.EndGame
'Berechnung der Differenz
Dim dblTip As Double = NumberTip.GetResult(startTime, endTime)
'Konsolenausgabe des Ergebnisses
Console.WriteLine(New String("="c, 60))
Console.Write("Ihr Tipergebnis: ")
Console.WriteLine("{0} sec.", dblTip)
If dblTip < 0.9 * numberOfSeconds OrElse _
dblTip > 1.1 * numberOfSeconds Then
Console.WriteLine("You are the greatest looser!")
Else
Console.WriteLine("The WINNER!")
End If
Console.ReadLine()
End Sub
End Module
Public Class NumberTip
'Sekundeneingabe des Anwenders
Public Shared Function GetNumberInput() As Int32
GetNumberInput = Convert.ToInt32(Console.ReadLine)
Console.WriteLine(New String("-"c, 60))
Console.WriteLine("Zum Starten und Beenden die Enter-Taste drücken.")
End Function
'Starten des Spiels
Public Shared Function StartGame() As DateTime
Console.ReadLine()
Console.Write("START ..................")
Return DateTime.Now
End Function
'Spiel beenden
Public Shared Function EndGame() As DateTime
Console.ReadLine()
Console.WriteLine("....................ENDE")
Return DateTime.Now
End Function
'Ergebnis ermitteln
't1 = Startzeit / t2 = Endzeit
Public Shared Function GetResult(ByVal t1 As DateTime, _
ByVal t2 As DateTime) As Double
Return (t2.ToFileTime – t1.ToFileTime) / TimeSpan.TicksPerSecond
End Function
End Class

Die Struktur der gesamten Anwendung ist so aufgebaut, dass sämtliche Funktionalitäten als statische Methoden in einer separaten Klasse (NumberTip) enthalten sind. Um eine Zeitdifferenz messen zu können, benötigen wir eine Startzeit und eine Endzeit. Die Startzeit muss festgehalten werden, wenn der Anwender die Messung startet. Hier hilft uns die Methode ToFileTime. Wird nämlich ein DateTime-Objekt erzeugt, enthält dieses immer die Anzahl der Ticks seit dem 1. Januar 1601 – gewissermaßen wie ein Geburtsdatum.

Also müssen wir im Code nach dem Start der Schätzung nur ein DateTime-Objekt erzeugen und ein zweites nach dem Beenden der Spielrunde. Durch einfache Subtraktion der beiden ToFileTime-Informationen erhalten wir die Anzahl der Ticks, die für die Auswertung maßgeblich sind:


Return (t2.ToFileTime – t1.ToFileTime) / TimeSpan.TicksPerSecond

Um die tatsächliche Zeitspanne in Sekunden zu messen, dividieren wir das Ergebnis der Subtraktion nur noch durch die Anzahl der Ticks pro Sekunde. Hierbei ist eine andere Klasse behilflich – TimeSpan. Diese Klasse veröffentlicht unter anderem eine Konstante, die uns den passenden Divisor bereitstellt. Später werden wir uns diese Klasse noch etwas genauer ansehen.

Rechenoperationen mit »DateTime«-Objekten

Die Add-Methoden decken alle Bedürfnisse hinsichtlich der Änderung eines Datums oder einer Zeit ab. Aus dem Bezeichner ist sofort zu erkennen, welche Einheit zu einem DateTime-Objekt addiert werden soll:

gp  AddDays
gp  AddHours
gp  AddMonths
gp  ...

Allen Methoden wird ein Wert vom Typ Integer bzw. Double übergeben, der Rückgabewert ist vom Typ DateTime, z.  B.:


Public Function AddSeconds(Double) As DateTime

Im folgenden Codefragment wird ein DateTime-Objekt erzeugt, welches das Datum 2. August 1995 und die Zeit 23:00 Uhr beschreibt. Davon werden mit der Methode AddHours 30 Stunden subtrahiert:


Dim now As New DateTime(1995, 8, 2, 23, 0, 0)
now = now.AddHours(-30)
Console.WriteLine(now)

An der Konsole wird


01.08.1995 17:00:00

ausgegeben, was beweist, dass die Methode automatisch auch ein aus der Addition resultierendes neues Datum berücksichtigt.


Galileo Computing

10.4.5 Die Klasse »TimeSpan«  toptop

Aus dem Pool der Methoden zur Manipulation einer DateTime-Instanz ragt eine heraus, deren Parametertyp sich von denen der anderen, gleichartigen Methoden unterscheidet. Es ist die Methode Add, deren Definition wir uns anschauen wollen:


Public Function Add(TimeSpan) As DateTime

Dem Parameter wird ein Objekt vom Typ TimeSpan übergeben. Dieser Typ scheint nur auf den ersten Blick dem Typ DateTime zu ähneln, aber beide unterscheiden sich grundlegend: Mit DateTime wird ein definitives Datum beschrieben, mit TimeSpan eine Zeitspanne. Dies machen auch die Konstruktoren der TimeSpan-Klasse deutlich, die Tage, Sunden, Minuten usw. entgegennehmen.

Der folgende Beispielcode zeigt, wie eine Referenz auf einer TimeSpan-Instanz an die Methode Add übergeben wird:


Dim now As New DateTime(2002, 2, 3, 12, 0, 0)
Dim mySpan As New TimeSpan(3, 12, 15)
now = now.Add(mySpan)
Console.WriteLine(now)

In der ersten Codezeile wird die Klasse DateTime instanziiert und dem Konstruktor das Datum 3. Februar 2002 12:00 Uhr übergeben. In der folgenden Anweisung erzeugen wir das TimeSpan-Objekt mySpan. Der Konstruktor mit drei Parametern übernimmt als Argumente Stunden, Minuten und Sekunden – er beschreibt demnach eine Zeitspanne von 3 Stunden, 12 Minuten, 15 Sekunden. Der Add-Methode wird danach das TimeSpan-Objekt übergeben, mit der Datum und Zeit neu bestimmt werden.

Eine Reihe vordefinierter Konstanten erleichtert die Umrechnung von Zeiteinheiten in Ticks, wenn unterschiedliche Zeitangaben mittels eines Faktors auf eine gemeinsame Einheitsbasis gebracht werden müssen – diese Basis bilden bekanntlich die Ticks. So beschreibt die Konstante TicksPerDay beispielsweise die Anzahl der Ticks pro Tag, TicksPerHour die Ticks pro Stunde.

Das folgende Beispiel zeigt, wie diese Konstanten sinnvoll eingesetzt werden können. Die benutzerdefinierten Funktionen DiffHours und DiffSeconds nehmen jeweils eine Referenz vom Typ DateTime entgegen und berechnen den Unterschied zwischen zwei Datumswerten in Stunden bzw. Sekunden. Dabei ist das erste das aktuelle Systemdatum, das wie üblich über Now ermittelt wird, das zweite muss der Anwender an der Konsole eingeben.


' ---------------------------------------------------------
' Beispiel: ...\Kapitel 10\Zeitdifferenz
' ---------------------------------------------------------
Module Module1
Sub Main()
'aktuelle Systemzeit festlegen
Dim actDate As DateTime
actDate = DateTime.Now
'das zu vergleichende Datum entgegennehmen
Console.WriteLine("Geben Sie das Vergleichsdatum")
Console.WriteLine("im Format tt.mm.jjjj ein:")
Dim strDate As String = Convert.ToString(Console.ReadLine)
'die Eingabe passend formatieren
strDate = strDate.Replace("."c, "/"c)
strDate = strDate.PadLeft(strDate.Length + 1, "#"c)
strDate = strDate.PadRight(strDate.Length + 1, "#"c)
Dim newDate As Date = Convert.ToDateTime(strDate)
'Ausgabe der Differenz in Stunden
Console.Write("Die Differenz in Stunden: ")
Console.WriteLine(DiffHours(actDate, newDate))
'Ausgabe der Differenz in Sekunden
Console.Write("Die Differenz in Sekunden: ")
Console.WriteLine(DiffSeconds(actDate, newDate))
Console.ReadLine()
End Sub
Public Function DiffHours(ByVal d1 As DateTime, _
ByVal d2 As DateTime) As Long
Dim x As Long = d2.Ticks – d1.Ticks
Return Convert.ToInt64(x / TimeSpan.TicksPerHour)
End Function
Public Function DiffSeconds(ByVal d1 As DateTime, _
ByVal d2 As DateTime) As Long
Dim x As Long = d2.Ticks – d1.Ticks
Return Convert.ToInt64(x / TimeSpan.TicksPerSecond)
End Function
End Module

Das Eingabeformat ist vorgeschrieben, da es nach der Bestätigung durch den Aufruf der Methode in ein Format überführt wird, das einem DateTime-Typ entspricht.

Der Algorithmus des Programmcodes in den beiden Methoden DiffHours und DiffSeconds ist ähnlich. Beide Routinen nehmen in ihren Parametern Referenzen des Typs DateTime entgegen, rechnen das jeweilige Datum mit der Eigenschaft Ticks zunächst in die Basiseinheit um, um im Anschluss daran die Differenz zu bilden. Die abschließende Division durch TicksPerHour bzw. TicksPerSecond liefert einen Long, der dem Aufrufer zurückgegeben wird.

Weitere Möglichkeiten der Klasse »TimeSpan«

Eine TimeSpan-Instanz beschreibt eine Zeitspanne aus Tagen, Stunden, Minuten, Sekunden und Millisekunden. Diese Zeitspanne lässt sich in einem String abbilden, der dem folgenden Format entspricht:


Tag.Stunden:Minuten:Sekunden.Sekundenbruchteil

Dazu ein Beispiel. Mit


Dim a As New TimeSpan(2, 12, 30, 22, 100)
Console.WriteLine(a.ToString())

erhalten Sie die folgende Ausgabe:


2.12:30:22.1000000

Manchmal ist es notwendig, die Angabe einer Zeitspanne in eine konkrete Zeiteinheit umzurechnen oder aus der Angabe einer Zahl, die eine Zeiteinheit widerspiegelt, ein TimeSpan-Objekt zu erzeugen. Auch dazu liefert die Klasse TimeSpan die passenden Methoden. Nehmen wir an, Sie wollten das mit


Dim span As TimeSpan = New TimeSpan(1, 35, 45)

erzeugte Objekt, das 1 Tag, 35 Minuten und 45 Sekunden beschreibt, in eine Zahl umwandeln. Es stellt sich mit den Möglichkeiten der Klasse nur noch die Frage, ob Sie eine Ganzzahl oder eine Dezimalzahl benötigen. Für beide Fälle gibt es die passenden Eigenschaften. Beispielsweise liefert:

gp  die Hours-Eigenschaft einen Integer
gp  die TotalHours-Eigenschaft einen Double

Die Anweisung


Console.WriteLine(span.TotalHours)

wird das Ergebnis 1,5958333333333 haben, beim Aufruf von Hours wird der Dezimalteil abgeschnitten. Analog lautende Eigenschaften gibt es auch, um mit Tagen, Minuten oder Sekunden zu operieren.

Einige statische Methoden des Typs TimeSpan ermöglichen auch ohne Initialisierung, einer TimeSpan-Variablen einen Wert zuzuweisen. Diese Methoden beginnen mit dem Präfix From, beispielsweise FromSeconds, FromMinutes, FromDays.


' die Anweisung beschreibt eine Zeitspanne von 3 Stunden
Dim ts As TimeSpan = TimeSpan.FromHours(3)

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de